package com.lzdongrui.backend.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.lzdongrui.common.annotation.Excel;
import com.lzdongrui.common.core.domain.BaseEntity;

/**
 * 请假申请对象 apply_leave
 *
 * @author wyh
 * @date 2023-05-18
 */
@Data
public class ApplyLeave extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /**  */
    @Excel(name = "")
    private Long id;

    /** 学生id */
    @Excel(name = "学生id")
    private Long stu;

    /** 开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "开始时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date beginTime;

    /** 结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "结束时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date endTime;

    /** 请假类型 */
    @Excel(name = "请假类型")
    private Long leaveType;

    /** 申请原因 */
    @Excel(name = "申请原因")
    private String cause;

    /** 天数 */
    @Excel(name = "天数")
    private Integer duration;

    /** 文件id */
    @Excel(name = "文件id")
    private String fileIds;

    /** 学院id */
    @Excel(name = "学院id")
    private Long collegeId;

    /** 审核人 */
    @Excel(name = "审核人")
    private Long audit;

    /** 审核级别 */
    @Excel(name = "审核级别")
    private Integer auditLevel;

    /** 当前审核级别 */
    @Excel(name = "当前审核级别")
    private Integer auditNewLevel;

    @Excel(name = "假期状态")
    private Integer vacationStatus;

    /** 审核状态 */
    @Excel(name = "审核状态")
    private Integer status;

    /** 前一条审核id */
    private Long parentLevelId;

    /** 当前审核部门id */
    @Excel(name = "当前审核部门id")
    private Long auditDepid;

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }
    public void setStu(Long stu)
    {
        this.stu = stu;
    }

    public Long getStu()
    {
        return stu;
    }
    public void setBeginTime(Date beginTime)
    {
        this.beginTime = beginTime;
    }

    public Date getBeginTime()
    {
        return beginTime;
    }
    public void setEndTime(Date endTime)
    {
        this.endTime = endTime;
    }

    public Date getEndTime()
    {
        return endTime;
    }
    public void setLeaveType(Long leaveType)
    {
        this.leaveType = leaveType;
    }

    public Long getLeaveType()
    {
        return leaveType;
    }
    public void setCause(String cause)
    {
        this.cause = cause;
    }

    public String getCause()
    {
        return cause;
    }
    public void setDuration(Integer duration)
    {
        this.duration = duration;
    }

    public Integer getDuration()
    {
        return duration;
    }

    public String getFileIds() {
        return fileIds;
    }

    public void setFileIds(String fileIds) {
        this.fileIds = fileIds;
    }

    public void setCollegeId(Long collegeId)
    {
        this.collegeId = collegeId;
    }

    public Long getCollegeId()
    {
        return collegeId;
    }
    public void setAudit(Long audit)
    {
        this.audit = audit;
    }

    public Long getAudit()
    {
        return audit;
    }
    public void setAuditLevel(Integer auditLevel)
    {
        this.auditLevel = auditLevel;
    }

    public Integer getAuditLevel()
    {
        return auditLevel;
    }
    public void setAuditNewLevel(Integer auditNewLevel)
    {
        this.auditNewLevel = auditNewLevel;
    }

    public Integer getAuditNewLevel()
    {
        return auditNewLevel;
    }

    public Integer getVacationStatus() {
        return vacationStatus;
    }

    public void setVacationStatus(Integer vacationStatus) {
        this.vacationStatus = vacationStatus;
    }

    public Long getParentLevelId() {
        return parentLevelId;
    }

    public void setParentLevelId(Long parentLevelId) {
        this.parentLevelId = parentLevelId;
    }

    public void setStatus(Integer status)
    {
        this.status = status;
    }

    public Integer getStatus()
    {
        return status;
    }
    public Long getAuditDepid() {
        return auditDepid;
    }

    public void setAuditDepid(Long auditDepid) {
        this.auditDepid = auditDepid;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("stu", getStu())
                .append("beginTime", getBeginTime())
                .append("endTime", getEndTime())
                .append("leaveType", getLeaveType())
                .append("cause", getCause())
                .append("duration", getDuration())
                .append("fileIds", getFileIds())
                .append("collegeId", getCollegeId())
                .append("audit", getAudit())
                .append("auditLevel", getAuditLevel())
                .append("auditNewLevel", getAuditNewLevel())
                .append("status", getStatus())
                .append("vacationStatus",getVacationStatus())
                .append("parentLevel",getParentLevelId())
                .append("auditDepid", getAuditDepid())
                .append("createTime", getCreateTime())
                .append("updateTime", getUpdateTime())
                .toString();
    }

}